feat: implement stellar-quickstart-up runtime installer#9282
feat: implement stellar-quickstart-up runtime installer#9282ulissesferreira wants to merge 7 commits into
Conversation
e2a9c44 to
bafa112
Compare
1793243 to
49a33c7
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 1454131. Configure here.
| digest: readFileSync(digestPath, 'utf8'), | ||
| imageReference: image.reference, | ||
| }; | ||
| } |
There was a problem hiding this comment.
Metadata cache skips Docker verify
High Severity
On a cache hit, installStellarQuickstartImage returns after matching on-disk metadata only and skips docker pull and digest inspection. If the local image was removed (for example after docker system prune) while cache files remain, install still reports success and the stellar/quickstart:latest wrapper may pull or run an image that was never checked against the pinned digest.
Reviewed by Cursor Bugbot for commit 1454131. Configure here.
Add the Docker-backed Stellar Quickstart installer that pulls a pinned stellar/quickstart image and exposes a node_modules/.bin wrapper for E2E harnesses to start local Stellar nodes.
… main Resolve Docker via PATH before writing the wrapper, verify image digests using RepoDigests instead of image Id, and expand the README to match other *-up packages.
…details Document the default docker run invocation, RepoDigest verification, Quickstart service endpoints, and package.json config fields.
Match the other *-up packages so changelog and release checks pass before the first publish.
Wire stellar-quickstart-up -> local-node-utils in the root README dependency diagram and apply oxfmt to the installer sources.
ca8541d to
8f37a91
Compare
…adata Read cached digest/reference files in a try/catch instead of existsSync followed by readFileSync to satisfy CodeQL.


Explanation
Extension E2E tests need local node bootstrap installers for each non-EVM chain, following the same runtime-only pattern as
@metamask/foundryup. MetaMask/core already ships several*-uppackages that install pinned runtimes into the MetaMask cache and expose binaries innode_modules/.bin, while the consuming test harness owns process startup, readiness checks, and seeding:@metamask/bitcoin-regtest-up(#9212)bitcoind/bitcoin-cli@metamask/solana-test-validator-up(#9210)solana-test-validator/solanaCLI@metamask/java-tron-up(#9211)FullNode.jar+ managed JDK@metamask/stellar-quickstart-up(this PR)stellar/quickstartDocker imageThis PR completes the Stellar installer. The package scaffold landed in #9281; this change adds the implementation.
Stellar Quickstart runs as a Docker image rather than a downloaded native binary, so the installer pulls a digest-pinned
stellar/quickstartimage, caches metadata under the MetaMask cache namespace, resolvesdockeronPATH, and writes astellar-quickstartwrapper that runsdocker run --rm -i -p 8000:8000. Container lifecycle and seeding remain in the Extension harness.Shared installer utilities come from
@metamask/local-node-utils.References
stellar-quickstart-upChecklist
Verification
Test plan
yarn workspace @metamask/stellar-quickstart-up run buildyarn workspace @metamask/stellar-quickstart-up run testyarn eslint packages/stellar-quickstart-upyarn constraintsyarn workspace @metamask/stellar-quickstart-up run changelog:validateyarn stellar-quickstart-up installwith Docker available, thennode_modules/.bin/stellar-quickstart --localNote
Low Risk
New dev/CI tooling package with no production wallet or auth paths; behavior is covered by unit tests and digest verification on pull.
Overview
Implements
@metamask/stellar-quickstart-upas a runtime-only installer (same model as@metamask/foundryupand other*-uppackages) for Extension E2E Stellar local nodes.The package pulls a digest-pinned
stellar/quickstart:latestimage, verifies it viadocker image inspect, caches metadata under the MetaMask cache (with Yarn global-cache behavior from@metamask/local-node-utils), and installs astellar-quickstartwrapper innode_modules/.binthat runsdockerwith default-p 8000:8000and forwards args (e.g.--local). Astellar-quickstart-upCLI handles defaultinstall,cache clean, and config frompackage.json/ CLI flags. Container startup and seeding stay in the test harness.Replaces the scaffold greeter with
install.tsexports and tests; wireslocal-node-utils,bin, changelog/README, monorepo README dependency graph, and relaxed Jest coverage thresholds (CLI entry excluded).Reviewed by Cursor Bugbot for commit a7eb2f5. Bugbot is set up for automated code reviews on this repo. Configure here.